@@ -322,8 +322,10 @@ class UserInfo(CreateUpdateMixin):  | 
            ||
| 322 | 322 | 
                def data(self):  | 
            
| 323 | 323 | 
                         return {
               | 
            
| 324 | 324 | 
                'user_id': self.user_id,  | 
            
| 325 | 
                + 'name': self.name,  | 
            |
| 325 | 326 | 
                'username': self.username,  | 
            
| 326 | 327 | 
                'nickname': self.nickname,  | 
            
| 328 | 
                + 'avatar': self.avatar,  | 
            |
| 327 | 329 | 
                }  | 
            
| 328 | 330 | 
                 | 
            
| 329 | 331 | 
                 | 
            
                @@ -14,11 +14,10 @@ from group.models import GroupInfo, GroupUserInfo  | 
            ||
| 14 | 14 | 
                from utils.error.errno_utils import GroupStatusCode, GroupUserStatusCode, UserStatusCode  | 
            
| 15 | 15 | 
                from utils.error.response_utils import response  | 
            
| 16 | 16 | 
                from utils.group_photo_utils import get_current_photos  | 
            
| 17 | 
                -from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_users_info  | 
            |
| 17 | 
                +from utils.redis.rgroup import get_group_info, get_group_users_info, get_group_users_kv_info, set_group_users_info  | 
            |
| 18 | 18 | 
                from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET,  | 
            
| 19 | 19 | 
                GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, TOUR_GUIDE_GROUP_CUR_GATHER_INFO,  | 
            
| 20 | 20 | 
                TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST)  | 
            
| 21 | 
                -from utils.redis.rprofile import get_profile_by_id  | 
            |
| 22 | 21 | 
                from utils.redis.rtourguide import get_tour_guide_own_group  | 
            
| 23 | 22 | 
                from utils.redis.rtouruser import set_tour_user_belong_group  | 
            
| 24 | 23 | 
                 | 
            
                @@ -233,9 +232,11 @@ def tgu_group_user_locations_api(request):  | 
            ||
| 233 | 232 | 
                # [['x', 0.33, (2.68220901489e-06, 1.26736058093e-06)], []]  | 
            
| 234 | 233 | 
                     locations = r.georadius(TOUR_GUIDE_GROUP_GEO_INFO % group_id, gather_info.get('gather_lon', 0), gather_info.get('gather_lat', 0), '+inf', unit='m', withdist=True, withcoord=True, sort='ASC')
               | 
            
| 235 | 234 | 
                     # [{'location_info': ['x', 0.33, (2.68220901489e-06, 1.26736058093e-06)], 'user_info': {}}, {}]
               | 
            
| 235 | 
                + # 获取旅行团用户 KV 信息  | 
            |
| 236 | 
                + group_users_kv_info = get_group_users_kv_info(group_id)  | 
            |
| 236 | 237 | 
                     locations = [{
               | 
            
| 237 | 238 | 
                'location_info': loc,  | 
            
| 238 | 
                - 'user_info': get_profile_by_id(loc[0])  | 
            |
| 239 | 
                + 'user_info': group_users_kv_info(loc[0])  | 
            |
| 239 | 240 | 
                } for loc in locations]  | 
            
| 240 | 241 | 
                 | 
            
| 241 | 242 | 
                     return response(200, 'Get Tour Guide Group All User Location Success', u'获取旅行团成员地理位置信息成功', {
               | 
            
                @@ -6,7 +6,8 @@ from django.conf import settings  | 
            ||
| 6 | 6 | 
                from django.core.serializers.json import DjangoJSONEncoder  | 
            
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                from utils.redis.rkeys import (GROUP_INFO, GROUP_PHOTO_COMMENT_LIST, GROUP_PHOTO_DATA, GROUP_PHOTO_THUMB_UP,  | 
            
| 9 | 
                - GROUP_PHOTO_THUMB_UP_LIST, GROUP_PHOTO_WATCHER_SET, GROUP_USERS_INFO)  | 
            |
| 9 | 
                + GROUP_PHOTO_THUMB_UP_LIST, GROUP_PHOTO_WATCHER_SET, GROUP_USERS_INFO,  | 
            |
| 10 | 
                + GROUP_USERS_KV_INFO)  | 
            |
| 10 | 11 | 
                 | 
            
| 11 | 12 | 
                 | 
            
| 12 | 13 | 
                r = settings.REDIS_CACHE  | 
            
                @@ -43,12 +44,17 @@ def get_group_info(group_id):  | 
            ||
| 43 | 44 | 
                def set_group_users_info(group):  | 
            
| 44 | 45 | 
                """ 设置群组用户信息 """  | 
            
| 45 | 46 | 
                group_users = group.users(admin=False)  | 
            
| 47 | 
                +  | 
            |
| 46 | 48 | 
                     group_users_data = {
               | 
            
| 47 | 49 | 
                'group_users': group_users,  | 
            
| 48 | 50 | 
                'admin_id': group.admin_id,  | 
            
| 49 | 51 | 
                }  | 
            
| 50 | 52 | 
                r.setex(GROUP_USERS_INFO % group.group_id, settings.REDIS_EXPIRED_MONTH, json.dumps(group_users_data, cls=DjangoJSONEncoder))  | 
            
| 51 | 
                - return group_users_data  | 
            |
| 53 | 
                +  | 
            |
| 54 | 
                +    group_users_kv_data = {user_info.get('user_id', ''): user_info for user_info in group_users.get('passed', [])}
               | 
            |
| 55 | 
                + r.setex(GROUP_USERS_KV_INFO % group.group_id, settings.REDIS_EXPIRED_MONTH, json.dumps(group_users_kv_data, cls=DjangoJSONEncoder))  | 
            |
| 56 | 
                +  | 
            |
| 57 | 
                + return group_users_data, group_users_kv_data  | 
            |
| 52 | 58 | 
                 | 
            
| 53 | 59 | 
                 | 
            
| 54 | 60 | 
                def set_group_users_info_by_id(group_id):  | 
            
                @@ -57,19 +63,24 @@ def set_group_users_info_by_id(group_id):  | 
            ||
| 57 | 63 | 
                try:  | 
            
| 58 | 64 | 
                group = GroupInfo.objects.get(group_id=group_id)  | 
            
| 59 | 65 | 
                except GroupInfo.DoesNotExist:  | 
            
| 60 | 
                -        return {}
               | 
            |
| 66 | 
                +        return {}, {}
               | 
            |
| 61 | 67 | 
                return set_group_users_info(group)  | 
            
| 62 | 68 | 
                 | 
            
| 63 | 69 | 
                 | 
            
| 64 | 70 | 
                def get_group_users_info(group_id, user_id):  | 
            
| 65 | 71 | 
                """ 获取群组用户信息 """  | 
            
| 66 | 
                -    group_users_data = json.loads(r.get(GROUP_USERS_INFO % group_id) or '{}') or set_group_users_info_by_id(group_id)
               | 
            |
| 72 | 
                +    group_users_data = json.loads(r.get(GROUP_USERS_INFO % group_id) or '{}') or set_group_users_info_by_id(group_id)[0]
               | 
            |
| 67 | 73 | 
                     group_users, admin_id = group_users_data.get('group_users', {}), group_users_data.get('admin_id', '')
               | 
            
| 68 | 74 | 
                if group_users and user_id != admin_id:  | 
            
| 69 | 75 | 
                [group_users.pop(k) for k in ['applying_count', 'applying']]  | 
            
| 70 | 76 | 
                return group_users  | 
            
| 71 | 77 | 
                 | 
            
| 72 | 78 | 
                 | 
            
| 79 | 
                +def get_group_users_kv_info(group_id):  | 
            |
| 80 | 
                + """ 获取群组用户信息 """  | 
            |
| 81 | 
                +    return json.loads(r.get(GROUP_USERS_KV_INFO % group_id) or '{}') or set_group_users_info_by_id(group_id)[1]
               | 
            |
| 82 | 
                +  | 
            |
| 83 | 
                +  | 
            |
| 73 | 84 | 
                # 群组照片相关  | 
            
| 74 | 85 | 
                 | 
            
| 75 | 86 | 
                 | 
            
                @@ -20,6 +20,7 @@ GROUP_INFO = 'group:info:%s' # STRING,群组信息,group_id  | 
            ||
| 20 | 20 | 
                 | 
            
| 21 | 21 | 
                # 群组用户相关  | 
            
| 22 | 22 | 
                GROUP_USERS_INFO = 'group:users:info:%s' # STRING,群组用户信息,group_id  | 
            
| 23 | 
                +GROUP_USERS_KV_INFO = 'group:users:kv:info:%s' # STRING,群组用户信息,group_id  | 
            |
| 23 | 24 | 
                GROUP_USERS_APPLYING_SET = 'group:users:applying:set:%s' # SET,群组用户申请集合,group_id  | 
            
| 24 | 25 | 
                GROUP_USERS_PASSED_SET = 'group:users:passed:set:%s' # SET,群组用户通过集合,group_id  | 
            
| 25 | 26 | 
                GROUP_USERS_REFUSED_SET = 'group:users:refused:set:%s' # SET,群组用户拒绝集合,group_id  |